Traditional storage systems include two filers connected together as a High Availability (HA) pair. This HA pair would share an array of disk drives which are generally hard disk drives (HDD) in an active-passive manner. With prior technologies, each drive is owned by one filer for as long as the filer is operating properly. However, if one of these filers should experience a fault event, the partner filer of the failed filer would take ownership of the abandoned drives while the failed filer is recovered. Additionally, the performance of the HA pair was typically limited by the performance of the HDD. By way of example, a typical high-performance HDD would be capable of 300 Random Read I/Os per Second (IOPS). So even with an array of 500 HDDs, the HA pair would only be capable of 15,000 Random Read OPS.
With the introduction of NVMe Solid State Drives (SSD), the performance of a single drive has increased to about 1 Million Random Read IOPS. The performance capabilities of just one shelf of 24 SSDs are enough to satisfy 200 filers. However, the challenge with NVMe SSDs is that they are based on the PCIe standard. The PCIe standard provides all the features needed for low latency and high throughput. Unfortunately, the PCIe interface is meant to be embedded in a system for lightly switched, directly connected links that provide tight interaction between system and device. In other words, the characteristics of the protocol that provide low latency also make it difficult to share devices across multiple filers.